package com.pig4cloud.pigx.system.mapstruct;

import com.pig4cloud.pigx.system.dto.SystemProductAddDTO;
import com.pig4cloud.pigx.system.dto.SystemProductEditDTO;
import com.pig4cloud.pigx.system.entity.SystemProduct;
import com.pig4cloud.pigx.system.vo.SystemProductOptionVO;
import com.pig4cloud.pigx.system.vo.SystemProductVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * SystemProductStruct
 *
 * @since 2022/11/24 11:37
 */
@Mapper
public interface SystemProductStruct {
	SystemProductStruct INSTANCE = Mappers.getMapper(SystemProductStruct.class);

	/**
	 * entity -> VO
	 *
	 * @param entity entity
	 * @return {@link SystemProductVO}
	 * @since 2022/2/8
	 */
	SystemProductVO entity2VO(SystemProduct entity);

	/**
	 * list -> VOList
	 *
	 * @param list list
	 * @return {@link SystemProductVO}
	 * @since 2022/2/8
	 */
	List<SystemProductVO> list2VOList(List<SystemProduct> list);

	/**
	 * addDTO -> entity
	 *
	 * @param dto dto
	 * @return {@link SystemProduct}
	 * @since 2022/2/8
	 */
	SystemProduct addDTO2entity(SystemProductAddDTO dto);

	/**
	 * editDTO -> entity
	 *
	 * @param dto dto
	 * @return {@link SystemProduct}
	 * @since 2022/2/8
	 */
	SystemProduct editDTO2entity(SystemProductEditDTO dto);

	/**
	 * list -> optionVOList
	 *
	 * @param list list
	 * @return {@link List< SystemProductOptionVO>}
	 * @since 2022/2/8
	 */
	List<SystemProductOptionVO> list2OptionVOList(List<SystemProduct> list);
}
